"""
如果出现了try expect 嵌套 try expect的情况，
    如果内部的try expect捕捉到了异常，那么外部的try expect会知道吗
案例：
1尝试只读⽅式打开test.txt⽂件，如果⽂件存在则读取⽂件内容，⽂件不存在则提示⽤户即可。
2. 读取内容要求：尝试循环读取内容，读取过程中如果检测到⽤户意外终⽌程序，则 except 捕获异常
并提示⽤户

根据我观察到的结果，异常并没有传递到外层的try except，很有可能就是因为我们对异常做了处理
"""
import time
try :
    # 尝试以只读方式打开文件，如果文件存在就读取文件
    # 不确定文件是否存在，所有使用try expect包裹一下
    f = open('test.txt',encoding='utf8')
    #在读取文件的过程中可能出现意外，因为我们要手动停止程序，也是一种报错
    try:
        while True:
            #一行行读取文件内容
            content = f.readline()
            if len(content) == 0:
                break
            print("内容是："+content)
            # 读取一行，休息一秒
            time.sleep(1)
    except :
        # 如果在文件读取过程中按了 contrl+C 就会抛异常
        print("意外终止了操作")
        #raise Exception 如果我在这里抛出去一个异常，那么外层try就会收到
        # 如果我不抛出，外层try catch 捕获不到异常
    finally:
        f.close()
        print("关闭了文件")
except:
    print("文件不存在")
